package com.piece.core.pay.client;

/**
 * 支付客户端的工厂接口
 */
public interface PayClientFactory {

    /**
     * 获得支付客户端
     *
     * @param channelId 渠道编号
     */
     PayClient getPayClient(String channelId, String channelCode);

    /**
     * 创建支付客户端
     *
     * @param channelId 渠道编号
     * @param channelCode 渠道编码
     * @param config 支付配置
     */
    <Config extends PayClientConfig> void initPayClient(String channelId, String channelCode, Config config);

    /**
     * 移除支付客户端
     */
    void removePayClient(String channelId);
}
